<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>递归附加参数的使用</title>
</head>
<body>
    
</body>
<script>
    /*
        递归附加参数的使用 
            之前学习函数的时候讲过附加参数  附加参数的出现就是为了能够让我们的函数能够更加的灵活
                在递归中也是一样的 为了让递归更加灵活
    */
    let course = [
        {name:'Vue.js',click:147},
        {name:'Node.js',click:85},
        {name:'JavaScript',click:32},
    ]
    // 算法需求：  使用递归的方式 让每一个课程的点击次数加20次（也可以自己自定义加多少次）
    function addclick(course,number = 20,i = 0){  //另外多单独定义一个i来表示索引  每次递归只是处理不同的索引内容而已
        if(i === course.length){
            return course
        }
        course[i].click += number
        return addclick(course,number,++i)
    }
    console.log(addclick(course))

    // 其实这个例子我们用数组的map方法才是最简单的方式   map是就是会逐一遍历
    let newcourse = course.map(item=>{
        item.click+=100
        return item    
    })
    console.log(newcourse)  //这才是最最简单的方式 
</script>
</html>